// database_connection.cpp（连接管理实现）
#include "database_connection.h"
#include <QSqlError>
#include <QDebug>

DatabaseConnection::DatabaseConnection(QObject *parent) : QObject(parent) {}

DatabaseConnection::~DatabaseConnection() {
    disconnect(); // 析构时自动断开连接
}

bool DatabaseConnection::connect(const QString &host, const QString &dbName,
                                 const QString &username, const QString &password,
                                 int port) {
    // 移除已存在的连接
    QSqlDatabase::removeDatabase(connectionName);

    // 创建新连接
    db = QSqlDatabase::addDatabase("QMYSQL", connectionName);
    db.setHostName(host);
    db.setDatabaseName(dbName);
    db.setUserName(username);
    db.setPassword(password);
    db.setPort(port);
    qDebug()<<"准备连接";
    // 打开连接
    if (db.open()) {
        qDebug() << "【数据库】连接成功";
        return true;
    } else {
        qDebug() << "【数据库】连接失败：" << db.lastError().text();
        return false;
    }
}

void DatabaseConnection::disconnect() {
    if (db.isOpen()) {
        db.close();
        qDebug() << "【数据库】连接已关闭";
    }
    QSqlDatabase::removeDatabase(connectionName); // 移除连接
}

QSqlDatabase DatabaseConnection::database() const {
    return db; // 返回数据库实例（供上层操作）
}
